﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Chenxin.Lib.Hr.BLL
{
    class UserInfoManage
    {
        ////Cache服务类
        //private Chenxin.Lib.Cache.CacheService cs = new Chenxin.Lib.Cache.CacheService(Chenxin.Lib.Cache.CacheConn.xCacheConn.GLOBAL);

        ///// <summary>
        ///// 是否存在该记录
        ///// </summary>
        //public bool Exists(Guid UserId)
        //{
        //    return Chenxin.Lib.Passport.DAL.Hr_UserInfo.Exists(UserId);
        //}

        ///// <summary>
        ///// 增加一条数据
        ///// </summary>
        //public void Add(Chenxin.Lib.Passport.Entity.Hr_UserInfo model)
        //{
        //    Chenxin.Lib.Hr.Entity.Struct_UserDepartRelation entUserDepart = new Chenxin.Lib.Hr.Entity.Struct_UserDepartRelation();

        //    entUserDepart.DepartId = model.DepartId;
        //    entUserDepart.DepartName = model.DepartName;
        //    entUserDepart.UserId = model.UserId;
        //    entUserDepart.UserName = model.UserName;
        //    entUserDepart.IsBelong = true;
        //    entUserDepart.RecordId = Guid.NewGuid();

        //    Chenxin.Lib.Hr.DAL.Struct_UserDepartRelation.Add(entUserDepart);

        //    Chenxin.Lib.Passport.DAL.Hr_UserInfo.Add(model);
        //}

        ///// <summary>
        ///// 更新一条数据
        ///// </summary>
        //public void Update(Chenxin.Lib.Passport.Entity.Hr_UserInfo model)
        //{
        //    //用户基本信息
        //    string strKeyUser = string.Format(Chenxin.Lib.Cache.CacheDataType.USER, model.UserId.ToString());
        //    //用户信息键
        //    string strGKeyUser = string.Format(Chenxin.Lib.Cache.CacheDataType.GLOBAL_USER, model.UserId.ToString());

        //    cs.Delete(strKeyUser);
        //    cs.Delete(strGKeyUser);
        //    Chenxin.Lib.Passport.DAL.Hr_UserInfo.Update(model);
        //}

        ///// <summary>
        ///// 删除一条数据
        ///// </summary>
        //public void Delete(Guid UserId)
        //{
        //    string strKeyUser = string.Format(Chenxin.Lib.Cache.CacheDataType.USER, UserId.ToString());
        //    //用户信息键
        //    string strGKeyUser = string.Format(Chenxin.Lib.Cache.CacheDataType.GLOBAL_USER, UserId.ToString());

        //    cs.Delete(strKeyUser);
        //    cs.Delete(strGKeyUser);
        //    Chenxin.Lib.Passport.DAL.Hr_UserInfo.Delete(UserId);
        //}

        ///// <summary>
        ///// 通过UserId得到一个对象实体
        ///// </summary>
        //public Chenxin.Lib.Passport.Entity.Hr_UserInfo GetEntityById(Guid UserId)
        //{
        //    string strKeyUser = string.Format(Chenxin.Lib.Cache.CacheDataType.USER, UserId.ToString());

        //    Chenxin.Lib.Passport.Entity.Hr_UserInfo entHrUserInfo;

        //    entHrUserInfo = cs.GetObject<Chenxin.Lib.Passport.Entity.Hr_UserInfo>(strKeyUser);

        //    if (!cs.Hit)
        //    {
        //        entHrUserInfo = new Chenxin.Lib.Passport.Entity.Hr_UserInfo();
        //        entHrUserInfo = Chenxin.Lib.Passport.DAL.Hr_UserInfo.GetEntityById(UserId);
        //        cs.Set(strKeyUser, entHrUserInfo);
        //    }
        //    return Chenxin.Lib.Passport.DAL.Hr_UserInfo.GetEntityById(UserId);
        //}

        ///// <summary>
        ///// 通过UserCode得到一个对象实体
        ///// </summary>
        //public Chenxin.Lib.Passport.Entity.Hr_UserInfo GetEntityByCode(string UserCode)
        //{

        //    return Chenxin.Lib.Passport.DAL.Hr_UserInfo.GetEntityByCode(UserCode);
        //}

        ///// <summary>
        ///// 得到一个对象实体，从缓存中。
        ///// </summary>
        //public Chenxin.Lib.Passport.Entity.Hr_UserInfo GetModelByCache(Guid UserId)
        //{

        //    //string CacheKey = "Hr_UserInfoModel-" + UserId;
        //    //object objModel = LTP.Common.DataCache.GetCache(CacheKey);
        //    //if (objModel == null)
        //    //{
        //    //    try
        //    //    {
        //    //        objModel = dal.GetModel(UserId);
        //    //        if (objModel != null)
        //    //        {
        //    //            int ModelCache = LTP.Common.ConfigHelper.GetConfigInt("ModelCache");
        //    //            LTP.Common.DataCache.SetCache(CacheKey, objModel, DateTime.Now.AddMinutes(ModelCache), TimeSpan.Zero);
        //    //        }
        //    //    }
        //    //    catch { }
        //    //}
        //    //return (Chenxin.Lib.House.Entity.Hr_UserInfo)objModel;
        //    return null;
        //}

        ///// <summary>
        ///// 获得数据列表
        ///// </summary>
        //public DataSet GetList(string strWhere)
        //{
        //    return Chenxin.Lib.Passport.DAL.Hr_UserInfo.GetList(strWhere);
        //}

        /////// <summary>
        /////// 获得前几行数据
        /////// </summary>
        ////public DataSet GetList(int Top, string strWhere, string filedOrder)
        ////{
        ////    return dal.GetList(Top, strWhere, filedOrder);
        ////}

        ///// <summary>
        ///// 获得数据列表
        ///// </summary>
        //public List<Chenxin.Lib.Passport.Entity.Hr_UserInfo> GetModelList(string strWhere)
        //{
        //    DataSet ds = Chenxin.Lib.Passport.DAL.Hr_UserInfo.GetList(strWhere);
        //    return DataTableToList(ds.Tables[0]);
        //}
        ///// <summary>
        ///// 获得数据列表
        ///// </summary>
        //public List<Chenxin.Lib.Passport.Entity.Hr_UserInfo> DataTableToList(DataTable dt)
        //{
        //    List<Chenxin.Lib.Passport.Entity.Hr_UserInfo> modelList = new List<Chenxin.Lib.Passport.Entity.Hr_UserInfo>();
        //    int rowsCount = dt.Rows.Count;
        //    if (rowsCount > 0)
        //    {
        //        Chenxin.Lib.Passport.Entity.Hr_UserInfo model;
        //        for (int n = 0; n < rowsCount; n++)
        //        {
        //            model = new Chenxin.Lib.Passport.Entity.Hr_UserInfo();
        //            model.UserCode = dt.Rows[n]["UserCode"].ToString();
        //            if (dt.Rows[n]["CityId"].ToString() != "")
        //            {
        //                model.CityId = new Guid(dt.Rows[n]["CityId"].ToString());
        //            }
        //            model.CityName = dt.Rows[n]["CityName"].ToString();
        //            if (dt.Rows[n]["Validate"].ToString() != "")
        //            {
        //                if ((dt.Rows[n]["Validate"].ToString() == "1") || (dt.Rows[n]["Validate"].ToString().ToLower() == "true"))
        //                {
        //                    model.Validate = true;
        //                }
        //                else
        //                {
        //                    model.Validate = false;
        //                }
        //            }
        //            model.Password = dt.Rows[n]["Password"].ToString();
        //            if (dt.Rows[n]["UserType"].ToString() != "")
        //            {
        //                model.UserType = int.Parse(dt.Rows[n]["UserType"].ToString());
        //            }
        //            model.UserName = dt.Rows[n]["UserName"].ToString();
        //            if (dt.Rows[n]["Sex"].ToString() != "")
        //            {
        //                model.Sex = int.Parse(dt.Rows[n]["Sex"].ToString());
        //            }
        //            model.Education = dt.Rows[n]["Education"].ToString();
        //            model.IDType = dt.Rows[n]["IDType"].ToString();
        //            model.IDNo = dt.Rows[n]["IDNo"].ToString();
        //            if (dt.Rows[n]["BirthDay"].ToString() != "")
        //            {
        //                model.BirthDay = DateTime.Parse(dt.Rows[n]["BirthDay"].ToString());
        //            }
        //            model.Address = dt.Rows[n]["Address"].ToString();
        //            model.Mobile = dt.Rows[n]["Mobile"].ToString();
        //            model.HomeTel = dt.Rows[n]["HomeTel"].ToString();
        //            model.OfficeTel = dt.Rows[n]["OfficeTel"].ToString();
        //            model.BankNo = dt.Rows[n]["BankNo"].ToString();
        //            if (dt.Rows[n]["ConBegin"].ToString() != "")
        //            {
        //                model.ConBegin = DateTime.Parse(dt.Rows[n]["ConBegin"].ToString());
        //            }
        //            if (dt.Rows[n]["ConEnd"].ToString() != "")
        //            {
        //                model.ConEnd = DateTime.Parse(dt.Rows[n]["ConEnd"].ToString());
        //            }
        //            if (dt.Rows[n]["DepartId"].ToString() != "")
        //            {
        //                model.DepartId = new Guid(dt.Rows[n]["DepartId"].ToString());
        //            }
        //            model.DepartName = dt.Rows[n]["DepartName"].ToString();
        //            if (dt.Rows[n]["Position"].ToString() != "")
        //            {
        //                model.Position = int.Parse(dt.Rows[n]["Position"].ToString());
        //            }
        //            if (dt.Rows[n]["EmpLevel"].ToString() != "")
        //            {
        //                model.EmpLevel = int.Parse(dt.Rows[n]["EmpLevel"].ToString());
        //            }
        //            if (dt.Rows[n]["ComeDate"].ToString() != "")
        //            {
        //                model.ComeDate = DateTime.Parse(dt.Rows[n]["ComeDate"].ToString());
        //            }
        //            model.FundCode = dt.Rows[n]["FundCode"].ToString();
        //            if (dt.Rows[n]["PassUpdateTime"].ToString() != "")
        //            {
        //                model.PassUpdateTime = DateTime.Parse(dt.Rows[n]["PassUpdateTime"].ToString());
        //            }
        //            model.Remark = dt.Rows[n]["Remark"].ToString();
        //            if (dt.Rows[n]["AddTime"].ToString() != "")
        //            {
        //                model.AddTime = DateTime.Parse(dt.Rows[n]["AddTime"].ToString());
        //            }
        //            if (dt.Rows[n]["UpdateTime"].ToString() != "")
        //            {
        //                model.UpdateTime = DateTime.Parse(dt.Rows[n]["UpdateTime"].ToString());
        //            }
        //            model.AddPerson = dt.Rows[n]["AddPerson"].ToString();
        //            model.AddDepart = dt.Rows[n]["AddDepart"].ToString();
        //            if (dt.Rows[n]["Status"].ToString() != "")
        //            {
        //                model.Status = int.Parse(dt.Rows[n]["Status"].ToString());
        //            }
        //            if (dt.Rows[n]["NeedChgPass"].ToString() != "")
        //            {
        //                if ((dt.Rows[n]["NeedChgPass"].ToString() == "1") || (dt.Rows[n]["NeedChgPass"].ToString().ToLower() == "true"))
        //                {
        //                    model.NeedChgPass = true;
        //                }
        //                else
        //                {
        //                    model.NeedChgPass = false;
        //                }
        //            }
        //            modelList.Add(model);
        //        }
        //    }
        //    return modelList;
        //}

        ///// <summary>
        ///// 获得数据列表
        ///// </summary>
        //public DataSet GetAllList()
        //{
        //    return GetList("");
        //}

        ///// <summary>
        ///// 获得数据列表
        ///// </summary>
        ////public DataSet GetList(int PageSize,int PageIndex,string strWhere)
        ////{
        ////return dal.GetList(PageSize,PageIndex,strWhere);
        ////}

        ////*******************************************
        ////功能概要       ：根据参数列表获得用户信息一览
        ////参数説明       ：context 请求的上下文
        ////返回值説明     ：无
        ////功能詳細       ：根据参数列表获得用户信息一览
        ////作成者         ：he.jifeng 
        ////作成日         ：2010-03-05
        ////*******************************************
        //public DataSet GetModelListByCoditions(System.Collections.Hashtable hsParams)
        //{
        //    //select文
        //    string strSelect;
        //    //order文
        //    string strOrder = "";
        //    //当前页数
        //    int intCurPage = 1;
        //    //显示行数
        //    int intRowCnt = 10;
        //    //where文
        //    string strWhere = getWhere(hsParams);

        //    //排序项目
        //    if (hsParams.ContainsKey("sidx"))
        //    {
        //        strOrder = strOrder + hsParams["sidx"].ToString();
        //    }
        //    //排序方式
        //    if (hsParams.ContainsKey("sord"))
        //    {
        //        strOrder = strOrder + " " + hsParams["sord"].ToString();
        //    }

        //    //当前页数
        //    if (hsParams.ContainsKey("page"))
        //    {
        //        intCurPage = Convert.ToInt32(hsParams["page"]);
        //    }
        //    //显示行数
        //    if (hsParams.ContainsKey("rows"))
        //    {
        //        intRowCnt = Convert.ToInt32(hsParams["rows"]);
        //    }

        //    strSelect = " UserId,UserCode,UserName,CASE WHEN Sex='0' THEN '男' ELSE '女' END  AS Sex,CASE WHEN BirthDay IS NULL THEN '' ELSE convert(char,BirthDay,23) END AS BirthDay,";
        //    strSelect = strSelect + "DateDiff(year, BirthDay ,getdate()) AS Age,Education,DepartName,Position,EmpLevel,IDNo,convert(char,ComeDate,23) AS ComeDate,";
        //    strSelect = strSelect + "FundCode,dbo.FN_GetStrRoles(UserId) AS RoleName";

        //    //开始范围
        //    int intSelStart;
        //    //结束范围
        //    int intSelEnd;

        //    intSelStart = (intCurPage - 1) * intRowCnt + 1;
        //    intSelEnd = intCurPage * intRowCnt;
        //    DataSet ds = Chenxin.Lib.Passport.DAL.Hr_UserInfo.GetList(strSelect, strWhere, strOrder, intCurPage, intRowCnt);
        //    return ds;
        //}

        ////*******************************************
        ////功能概要       ：根据参数列表获得Where文
        ////参数説明       ：hsParams 参数列表
        ////返回值説明     ：where文
        ////功能詳細       ：根据参数列表获得Where文
        ////作成者         ：he.jifeng 
        ////作成日         ：2010-03-07
        ////*******************************************
        //public string getWhere(System.Collections.Hashtable hsParams)
        //{
        //    string strWhere = " 1=1 ";

        //    //工号
        //    if (hsParams.ContainsKey("UserId"))
        //    {
        //        strWhere = strWhere + " And UserId = '" + hsParams["UserId"].ToString() + "' ";
        //    }
        //    //职务
        //    if (hsParams.ContainsKey("DepartId"))
        //    {
        //        strWhere = strWhere + " And DepartId = '" + hsParams["DepartId"].ToString() + "' ";
        //    }
        //    //职务
        //    if (hsParams.ContainsKey("Position"))
        //    {
        //        strWhere = strWhere + " And exists(select 1 from Hr_Struct_UserDepartRelation R where Hr_UserInfo.UserId = R.UserId and R.RoleType = " + hsParams["Position"].ToString() + ")";
        //    }
        //    //状态
        //    if (hsParams.ContainsKey("Status"))
        //    {
        //        strWhere = strWhere + " And Status = " + hsParams["Status"].ToString();
        //    }
        //    //到职时间（开始）
        //    if (hsParams.ContainsKey("ComeDateFrom"))
        //    {
        //        strWhere = strWhere + " And ComeDate > cast('" + hsParams["ComeDateFrom"].ToString() + "'as datetime)";
        //    }
        //    //到职时间（结束）
        //    if (hsParams.ContainsKey("ComeDateTo"))
        //    {
        //        strWhere = strWhere + " And ComeDate < cast('" + hsParams["ComeDateTo"].ToString() + "'as datetime)";
        //    }
        //    //合同时间（开始）
        //    if (hsParams.ContainsKey("ContractDateFrom"))
        //    {
        //        strWhere = strWhere + " And ConBegin > cast('" + hsParams["ContractDateFrom"].ToString() + "'as datetime)";
        //    }
        //    //合同时间（结束）
        //    if (hsParams.ContainsKey("ContractDateTo"))
        //    {
        //        strWhere = strWhere + " And ConBegin < cast('" + hsParams["ContractDateTo"].ToString() + "'as datetime)";
        //    }
        //    //离职时间（开始）
        //    if (hsParams.ContainsKey("LeaveDateFrom"))
        //    {
        //        strWhere = strWhere + " And LeaveDate > cast('" + hsParams["ContractDateFrom"].ToString() + "'as datetime)";
        //    }
        //    //离职时间（结束）
        //    if (hsParams.ContainsKey("LeaveDateTo"))
        //    {
        //        strWhere = strWhere + " And LeaveDate < cast('" + hsParams["ContractDateTo"].ToString() + "'as datetime)";
        //    }
        //    //身份证号
        //    if (hsParams.ContainsKey("IDNo"))
        //    {
        //        strWhere = strWhere + " And IDNo like'%" + hsParams["IDNo"].ToString() + "%' ";
        //    }
        //    //角色
        //    if (hsParams.ContainsKey("RoleId"))
        //    {
        //        strWhere = strWhere + " And exists(select 1 from Base_RoleUserRelationInfo R where Hr_UserInfo.UserId = R.UserId and R.RoleId = '" + hsParams["RoleId"].ToString() + "')";
        //    }
        //    //职务
        //    if (hsParams.ContainsKey("Position"))
        //    {
        //        strWhere = strWhere + " And exists(select 1 from Hr_Struct_UserDepartRelation R where Hr_UserInfo.UserId = R.UserId and R.RoleType = " + hsParams["Position"].ToString() + ")";
        //    }

        //    return strWhere;
        //}

        ////*******************************************
        ////功能概要       ：根据参数列表获得Where文
        ////参数説明       ：hsParams 参数列表
        ////返回值説明     ：where文
        ////功能詳細       ：根据参数列表获得Where文
        ////作成者         ：he.jifeng 
        ////作成日         ：2010-03-07
        ////*******************************************
        //public int getTotalCnt(System.Collections.Hashtable hsParams)
        //{
        //    //得到Where文
        //    string strWhere = getWhere(hsParams);
        //    //取得总记录数
        //    return Chenxin.Lib.Passport.DAL.Hr_UserInfo.getTotalCnt(strWhere);
        //}

        ///// <summary>
        ///// 通过UserId得到一个对象实体
        ///// </summary>
        //public ArrayList GetUsersDeparts(string strParam)
        //{
        //    ArrayList lsUsersDeparts = new ArrayList();

        //    string strWhereUser;
        //    string strWhereDepart;

        //    strWhereUser = " (UserName like '%" + strParam + "%') OR (UserCode like '%" + strParam + "%') ";
        //    strWhereDepart = " DepartName like '%" + strParam + "%'";

        //    List<Chenxin.Lib.Passport.Entity.Hr_UserInfo> lsUserInfo = Chenxin.Lib.Passport.DAL.Hr_UserInfo.GetListArray(strWhereUser);
        //    List<Chenxin.Lib.Hr.Entity.Hr_DepartmentInfo> lsDepartInfo = Chenxin.Lib.Hr.DAL.Hr_DepartmentInfo.GetListArray(strWhereDepart);

        //    lsUsersDeparts.Add(lsUserInfo);
        //    lsUsersDeparts.Add(lsDepartInfo);

        //    return lsUsersDeparts;
        //}
    }
}
